package com.zpark.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @version 1.0
 * @Author YYS
 * @Date 2024/3/21 11:31
 */
// 使用@Configuration注解表明这是一个Spring的配置类
@Configuration
// 使用@EnableWebMvc注解启用Spring MVC的注解驱动
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {

    // 实现WebMvcConfigurer接口的addCorsMappings方法，用于配置CORS（跨源资源共享）设置
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 覆盖父类方法，添加CORS（跨域资源共享）配置  
        // 对所有路径（"/**"）进行CORS配置  
        registry.addMapping("/**")
                // 允许来自前端的请求访问，注意在生产环境中，应该使用具体的域名或IP，避免安全风险
            .allowedOrigins("http://localhost:5173") // 允许前端地址
                // 允许所有的请求头，星号(*)表示不限制任何请求头
                .allowedHeaders("*")
                // 允许所有的HTTP方法，星号(*)表示不限制任何请求方法  
                .allowedMethods("*")
                // 允许携带凭证（如Cookies），这对于需要用户认证的场景是必要的  
                .allowCredentials(true)
                // 设置预检请求的缓存时间为3600秒，即在3600秒内，浏览器无需再次发送预检请求  
                .maxAge(3600);
    }
}